In recent years, as miniaturization of NAND type flash memory proceeds, reliability during a write operation of data has become a problem. NAND type flash memory includes memory cells connected in series, a source line connected to a side at one end of those memory cells connected in series, and a bit line connected to a side at the other end of those memory cells connected in series.
When writing data by this NAND type flash memory, applied voltages to the memory cells are changed in the following order. That is, a gate of a non-selected memory cell is applied with a write pass voltage Vpass (for example, about 8 V) having such a value that does not change a threshold voltage but sets the non-selected memory cell to an “ON” state. Then, a gate of a selected memory cell is applied with a program voltage Vpgm (for example, a voltage of 20 V or more) to store charges in a floating gate of the selected memory cell. As a result, the threshold voltage of the selected memory cell rises (“0” data is written to the selected memory cell). The above is a procedure for write.